import axios from 'axios';
import {reqExpost,ajaxGet,ajaxPost,ajaxDelete,ajaxPut,ajaxPatch,uploadImg,ajaxGetDetailByID} from './request';
import {url} from './url';

// 获取登录页的信息
export const login = params => ajaxPost({url: `admin/v1/auth/login`,params})
// 获取验证码
export const getCaptcha = params => ajaxGet({url: `captcha/`,params})
// 获取菜单树形结构
export const getMenuTree = params => ajaxGet({url: `admin/v1/menus?tree=true`,params})
// 获取菜单（旧接口，保留兼容）
export const apiSystemWebRouter = params => ajaxGet({url: `system/menu/web_router/`,params})
//系统监控
export const monitorGetSystemInfo = params => ajaxGet({url: `monitor/getsysteminfo/`,params})
// 获取系统所有api列表
export const getSystemLyapiList = params => ajaxGet({url: `lyapi.json`,params})

/**
*系统配置
 * */

// 系统配置
export const platformsettingsSysconfig = params => ajaxGet({url: `platformsettings/sysconfig/`,params})
// 系统配置 -- 新增
export const platformsettingsSysconfigAdd = params => ajaxPost({url: `platformsettings/sysconfig/`,params})
// 系统配置 -- 编辑
export const platformsettingsSysconfigEdit = params => ajaxPut({url: `platformsettings/sysconfig/`,params})
// 系统配置 -- 删除
export const platformsettingsSysconfigDelete = params => ajaxDelete({url: `platformsettings/sysconfig/`,params})
// 系统配置 -- 保存子项
export const platformsettingsSysconfigSavecontent = params => ajaxPut({url: `platformsettings/sysconfig/save_content/`,params})

/**
*计划任务
 * */

// 计划任务
export const crontabPeriodictask = params => ajaxGet({url: `crontab/periodictask/`,params})
// 计划任务 -- 新增
export const crontabPeriodictaskAdd = params => ajaxPost({url: `crontab/periodictask/`,params})
// 计划任务 -- 编辑
export const crontabPeriodictaskEdit = params => ajaxPut({url: `crontab/periodictask/`,params})
// 计划任务 -- 删除
export const crontabPeriodictaskDelete = params => ajaxDelete({url: `crontab/periodictask/`,params})
// 计划任务 -- 开始/暂停
export const crontabPeriodictaskEnabled = params => ajaxPut({url: `crontab/periodictask/enabled/`,params})
// 计划任务 获取本地所有tasks文件中的task任务方法
export const crontabPeriodictaskMethodlist = params => ajaxGet({url: `crontab/periodictask/tasklist/`,params})

// 计划任务 获取任务执行结果
export const crontabTaskresult = params => ajaxGet({url: `crontab/taskresult/`,params})


/**
*终端服务
 * */

// 终端服务
export const apiTerminal = params => ajaxGet({url: `terminal/terminal/`,params})
// 终端服务 -- 新增
export const apiTerminalAdd = params => ajaxPost({url: `terminal/terminal/`,params})
// 终端服务 -- 编辑
export const apiTerminalEdit = params => ajaxPut({url: `terminal/terminal/`,params})
// 终端服务 -- 删除
export const apiTerminalDelete = params => ajaxDelete({url: `terminal/terminal/`,params})

/**
*系统管理
 * */
// 部门管理列表
export const apiSystemDept = params => ajaxGet({url: `admin/v1/departments`,params})
// 部门管理列表 -- 新增部门
export const apiSystemDeptAdd = params => ajaxPost({url: `admin/v1/departments`,params})
// 部门管理列表 -- 编辑部门
export const apiSystemDeptEdit = (id, params) => ajaxPut({url: `admin/v1/departments/${id}`,params})
// 部门管理列表 -- 删除部门
export const apiSystemDeptDelete = (id) => ajaxDelete({url: `admin/v1/departments/${id}`})


// 菜单管理列表
export const apiSystemMenu = params => ajaxGet({url: `admin/v1/menus`,params})
// 菜单管理列表 -- 新增菜单
export const apiSystemMenuAdd = params => ajaxPost({url: `admin/v1/menus`,params})
// 菜单管理列表 -- 编辑菜单
export const apiSystemMenuEdit = (id, params) => ajaxPut({url: `admin/v1/menus/${id}`,params})
// 菜单管理列表 -- 删除菜单
export const apiSystemMenuDelete = (id) => ajaxDelete({url: `admin/v1/menus/${id}`})
//获取部门数据,获取菜单树
export const systemMenuTree = params => ajaxGet({url: `admin/v1/menus/options`,params})
// 菜单管理 》 按钮列表(全部)
export const systemButton = params => ajaxGet({url:`system/button/`,params})
// 菜单管理 》 按钮 编辑
export const systemButtonEdit = params => ajaxPut({url:`system/button/`,params})
// 菜单管理 》 按钮 新增
export const systemButtonAdd = params => ajaxPost({url:`system/button/`,params})
// 菜单管理 》 按钮 删除
export const systemButtonDelete = params => ajaxDelete({url:`system/button/`,params})
// 菜单管理 》 按钮配置列表（针对单个菜单）
export const systemMenuButton = params => ajaxGet({url:`system/menu_button/`,params})
// 菜单管理 》 按钮配置列表（针对单个菜单） 新增
export const systemMenuButtonAdd = params => ajaxPost({url:`system/menu_button/`,params})
// 菜单管理 》 按钮配置列表（针对单个菜单） 编辑
export const systemMenuButtonEdit = params => ajaxPut({url:`system/menu_button/`,params})
// 菜单管理 》 按钮配置列表（针对单个菜单） 删除
export const systemMenuButtonDelete = params => ajaxDelete({url:`system/menu_button/`,params})



// 角色管理列表
export const apiSystemRole = params => ajaxGet({url: `admin/v1/roles`,params})
// 角色管理列表-修改
export const apiSystemRoleEdit = (id, params) => ajaxPut({url: `admin/v1/roles/${id}`,params})
// 角色管理列表 -- 新增角色
export const apiSystemRoleAdd = params => ajaxPost({url: `admin/v1/roles`,params})
// 角色管理列表 -- 删除角色
export const apiSystemRoleDelete = id => ajaxDelete({url: `admin/v1/roles/${id}`})
// 获取角色数据权限选项
export const apiSystemRoleDataScopeOptions = () => ajaxGet({url: `admin/v1/roles/data-scope-options`})
//获取部门数据,用于角色授权
export const apiSystemDeptTree = params => ajaxGet({url: `admin/v1/departments/options`,params})
//通过角色id,获取菜单数据
export const apiSystemRoleIdToMenu = params => ajaxGet({url: `admin/v1/roles`,params})
export const apiSystemRoleIdToMenuid = (id) => ajaxGet({url: `admin/v1/roles/${id}/menus`})

//权限管理
// 权限管理 -- 保存
export const apiPermissionSave = params => ajaxPut({url: `admin/v1/roles/permission`,params})

//管理员管理
export const apiSystemUser = params => ajaxGet({url: `admin/v1/admins`,params})
//管理员管理-新增
export const apiSystemUserAdd = params => ajaxPost({url: `admin/v1/admins`,params})
//管理员管理-修改
export const apiSystemUserEdit = (id, params) => ajaxPut({url: `admin/v1/admins/${id}`,params})
//管理员管理-删除
export const apiSystemUserDelte = (id) => ajaxDelete({url: `admin/v1/admins/${id}`})

/**
 *日志管理
 * */
// 日志管理 查询
export const systemOperationlog= params => ajaxGet({url: `system/operation_log/`,params})
// 日志管理 删除
export const systemOperationlogDelete= params => ajaxDelete({url: `system/operation_log/`,params})
// 日志管理 清空全部日志
export const systemOperationlogDeletealllogsDelete= params => ajaxDelete({url: `system/operation_log/deletealllogs/`,params})

/**
 *个人中心
 * */
// 获取当前个人用户信息
export const systemUserUserInfo= params => ajaxGet({url: `system/user/user_info/`,params})
// 更新修改当前个人用户信息
export const systemUserUserInfoEdit= params => ajaxPut({url: `system/user/user_info/`,params})
// 用户重置个人密码
export const systemUserChangePassword= params => ajaxPut({url: `system/user/change_password/`,params})


/**
 *消息中心
 * */
//消息模板
export const messagesMessagetemplate = params => ajaxGet({url: `messages/messagetemplate/`,params})
//消息模板-新增
export const messagesMessagetemplateAdd = params => ajaxPost({url: `messages/messagetemplate/`,params})
//消息模板-修改
export const messagesMessagetemplateEdit = params => ajaxPut({url: `messages/messagetemplate/`,params})
//消息模板-删除
export const messagesMessagetemplateDelete = params => ajaxDelete({url: `messages/messagetemplate/`,params})

//消息公告
export const messagesMessagenotice = params => ajaxGet({url: `messages/messagenotice/`,params})
//消息公告-新增
export const messagesMessagenoticeAdd = params => ajaxPost({url: `messages/messagenotice/`,params})
//消息公告-修改
export const messagesMessagenoticeEdit = params => ajaxPut({url: `messages/messagenotice/`,params})
//消息公告-删除
export const messagesMessagenoticeDelete = params => ajaxDelete({url: `messages/messagenotice/`,params})



/**
 *省市区选择
 * */
// 省市区选择  获取省
export const getProvince= params => ajaxGet({url: `areas/`,params})
// 省市区选择  获取市/区
export const getCityDistrictByID= params => ajaxGetDetailByID({url: `areas/`,params})

// 省市区选择  根据详细地址获取经纬度
export const getAddressaccuracy= params => ajaxGet({url: `getaddressaccuracy/`,params})


/**
 *意见反馈
 * */

// 意见反馈 列表
export const PlatformsettingsUserfeeckback= params => ajaxGet({url: `platformsettings/userfeeckback/`,params})
// 意见反馈 新增
export const PlatformsettingsUserfeeckbackAdd= params => ajaxPost({url: `platformsettings/userfeeckback/`,params})
// 意见反馈 编辑
export const PlatformsettingsUserfeeckbackEdit= params => ajaxPut({url: `platformsettings/userfeeckback/`,params})
// 意见反馈 删除
export const PlatformsettingsUserfeeckbackDelete= params => ajaxDelete({url: `platformsettings/userfeeckback/`,params})

/**
 *地区管理
 * */

// 地区管理列表
export const addressArea = params => ajaxGet({url: `address/area/`,params})
// 地区管理列表 获取根地区
export const addressAreaRoot = params => ajaxGet({url: `address/area/area_root/`,params})
// 地区管理 -- 新增
export const addressAreaAdd = params => ajaxPost({url: `address/area/`,params})
// 地区管理 -- 编辑
export const addressAreaEdit = params => ajaxPut({url: `address/area/`,params})
// 地区管理 -- 删除
export const addressAreaDelete = params => ajaxDelete({url: `address/area/`,params})

/**
 *用户管理
 * */

// ===== 用户管理（小程序用户） =====
// 列表查询
export const UsersUsers = (params = {}) => {
    const { page = 1, limit = 20, ...rest } = params
    return ajaxGet({ url: `admin/v1/users`, params: { page, per_page: limit, ...rest } })
}
// 新增用户（后台创建）
export const UsersUsersAdd = params => ajaxPost({ url: `admin/v1/users`, params })
// 编辑用户
export const UsersUsersEdit = (id, params) => ajaxPut({ url: `admin/v1/users/${id}`, params })
// 删除用户
export const UsersUsersDelete = id => ajaxDelete({ url: `admin/v1/users/${id}` })
// 启用/禁用或其他状态更新
export const UsersUsersdisableEdit = (id, status) => ajaxPut({ url: `admin/v1/users/${id}/status`, params: { status } })
// 导出用户数据
export const UsersUsersExportexecl = params => ajaxGet({ url: `admin/v1/users/export`, params })
// 获取用户详情
export const UsersUsersDetail = id => ajaxGet({ url: `admin/v1/users/${id}` })

/**
 *平台设置
 * */

// 平台设置列表
export const platformsettingsOther = params => ajaxGet({url: `platformsettings/other/`,params})
// 平台设置 -- 新增
export const platformsettingsOtherAdd = params => ajaxPost({url: `platformsettings/other/`,params})
// 平台设置 -- 编辑
export const platformsettingsOtherEdit = params => ajaxPut({url: `platformsettings/other/`,params})
// 平台设置 -- 删除
export const platformsettingsOtherDelete = params => ajaxDelete({url: `platformsettings/other/`,params})
// 平台设置 -- 超级操作获取
export const superOerateGet = params => ajaxGet({url: `platformsettings/super_operate/`,params})
// 平台设置 -- 超级操作设置
export const superOerateSet = params => ajaxPut({url: `platformsettings/super_operate/`,params})
// 平台设置 -- 图片上传
export const platformsettingsUploadPlatformImg = params => uploadImg({url: `api/files/upload`,params})

/**
 *轮播图管理
 * */

// 轮播图列表
export const platformsettingsLunboimg = params => ajaxGet({url: `admin/v1/banners`,params})
// 轮播图 -- 新增
export const platformsettingsLunboimgAdd = params => ajaxPost({url: `admin/v1/banners`,params})
// 轮播图 -- 编辑
export const platformsettingsLunboimgEdit = (id, params) => ajaxPut({url: `admin/v1/banners/${id}`,params})
// 轮播图 -- 删除
export const platformsettingsLunboimgDelete = (id) => ajaxDelete({url: `admin/v1/banners/${id}`})

/**
 *商城订单管理
 * */

// 商城订单列表
export const mallGoodsOrder = params => ajaxGet({url: `mall/goods_order/`,params})
// 商城订单 -- 删除
export const mallGoodsOrderDelete = params => ajaxDelete({url: `mall/goods_order/`,params})
// 商城订单 -- 统计
export const mallGoodsOrderstatistics = params => ajaxGet({url: `mall/goods_order/statistics/`,params})
// 商城订单 -- 发货
export const mallGoodsSendoutgoods = params => ajaxPut({url: `mall/goods_order/sendoutgoods/`,params})

/**
 *商品类型管理
 * */

// 商品类型列表
export const mallGoodstype = params => ajaxGet({url: `mall/goodstype/`,params})
// 商品类型 -- 新增
export const mallGoodstypeAdd = params => ajaxPost({url: `mall/goodstype/`,params})
// 商品类型 -- 编辑
export const mallGoodstypeEdit = params => ajaxPut({url: `mall/goodstype/`,params})
// 商品类型 -- 删除
export const mallGoodstypeDelete = params => ajaxDelete({url: `mall/goodstype/`,params})

/**
 *商品管理
 * */

// 商品列表
export const mallGoodsspu = params => ajaxGet({url: `mall/goodsspu/`,params})
// 商品 -- 新增
export const mallGoodsspuAdd = params => ajaxPost({url: `mall/goodsspu/`,params})
// 商品 -- 编辑
export const mallGoodsspuEdit = params => ajaxPut({url: `mall/goodsspu/`,params})
// 商品 -- 删除
export const mallGoodsspuDelete = params => ajaxDelete({url: `mall/goodsspu/`,params})
// 商品 -- 上架/下架
export const mallGoodsspuIslaunched = params => ajaxPut({url: `mall/goodsspu/islaunched/`,params})
// 商品 -- 编辑SKU规格
export const mallGoodsspueEditskups = params => ajaxPut({url: `mall/goodsspu/editskups/`,params})

/**
 *财务统计
 * */

// 财务统计 -- 订单信息
export const mallGoodsforderinfo = params => ajaxGet({url: `mall/goodsforderinfo/`,params})
// 财务统计 -- 订单统计
export const mallGoodsforderinfoOrderstatistics = params => ajaxGet({url: `mall/goodsforderinfo/orderstatistics/`,params})

/**
 *字典管理
 * */

// 字典分类列表
export const apiDictCategory = params => ajaxGet({url: `admin/v1/dictionaries/categories`,params})
// 字典分类 -- 新增
export const apiDictCategoryAdd = params => ajaxPost({url: `admin/v1/dictionaries/categories`,params})
// 字典分类 -- 编辑
export const apiDictCategoryEdit = (id, params) => ajaxPut({url: `admin/v1/dictionaries/categories/${id}`,params})
// 字典分类 -- 删除
export const apiDictCategoryDelete = (id) => ajaxDelete({url: `admin/v1/dictionaries/categories/${id}`})
// 字典分类 -- 选项列表
export const apiDictCategoryOptions = params => ajaxGet({url: `admin/v1/dictionaries/categories/options`,params})

// 字典项列表
export const apiDictItem = params => ajaxGet({url: `admin/v1/dictionaries/items`,params})
// 字典项 -- 新增
export const apiDictItemAdd = params => ajaxPost({url: `admin/v1/dictionaries/items`,params})
// 字典项 -- 编辑
export const apiDictItemEdit = (id, params) => ajaxPut({url: `admin/v1/dictionaries/items/${id}`,params})
// 字典项 -- 删除
export const apiDictItemDelete = (id) => ajaxDelete({url: `admin/v1/dictionaries/items/${id}`})
// 字典项 -- 根据编码获取
export const apiDictItemByCode = (code) => ajaxGet({url: `admin/v1/dictionaries/items/by-code/${code}`})